// npm i mysql2
const mysql = require("mysql2/promise")

// 创建数据库连接配置
// const dbConfig = {
//   // 数据库服务器地址
//   host: "localhost",
//   // 数据库用户名
//   user: "root",
//   // 数据库密码
//   password: "root",
//   // 数据库名
//   database: "recycle",
// }

// 创建数据库连接配置（线上数据库）
const dbConfig = {
  // 数据库服务器地址
  host: "localhost",
  // 数据库用户名
  user: "recycle",
  // 数据库密码
  password: "root",
  // 数据库名
  database: "recycle",
}

/**
 * 连接到MySQL数据库
 * @param {string} sql sql语句
 * @param {Array} params 参数数组
 * @param {Function} callBack 回调函数
 */
async function connectToDatabase(sql, params, callBack) {
  try {
    const connection = await mysql.createConnection(dbConfig)
    console.log("Connected to MySQL database!")

    // 完整的sql语句
    // const formattedSql = mysql.format(sql, params)
    // console.log('formattedSql：', formattedSql)

    // 执行一个简单的查询
    const [rows, fields] = await connection.execute(sql, params)
    callBack(rows, null)

    // 关闭连接
    await connection.end()
    console.log("Connection closed.")
  } catch (error) {
    callBack(null, error)
    console.error("Error connecting to the database:", error)
    // 关闭连接
    connection.end()
  }
}

module.exports = connectToDatabase
